/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.osdtsystem.estimator;

import org.osdtsystem.dataset.Dataset;
import org.osdtsystem.dataset.View;

/**
 * Interface for estimators with hierarchy support.
 * @author Matthias Buch-Kromann and Martin Haulrich
 */
public interface Estimator {
    // View
    public View view();

    // Estimator evaluation on classes and data points
    public double evaluate(Dataset dataset, int identifier);
    
    // Training
    public Dataset trainingData();
    public void setTrainingData(Dataset dataset);
    public void addTrainingData(Dataset dataset);
    public void train();
    public void retrain();

    // Model cleanup
    public void clearTrainingData();
    public void clearParameters();
}